Digital communications links are often used to transmit data at very high rates from one point to another. The transmission of the data over these communications links, however, may introduce errors into the data. These errors may arise from a number of sources.
For example, because the transmission medium of the link may have several closely spaced data lines carrying high frequency signals, the signals may be subject to noise generated by electromagnetic interference. This noise may degrade the signal enough to cause errors in the data.
As a result of the potential for introducing errors into the data, various means are used to test the integrity of these communications links. One such means is the transmission of a known data pattern over the link and comparing the transmitted data to the known data pattern to identify errors. Because a predetermined, non-random pattern may not closely approximate the different conditions present in actual data transmissions (e.g., conditions relating to the frequency spectrum of the transmissions), it is usually better to use a random, or pseudorandom bit sequence to test the link. These bit sequences may be compared after transmission to sequences identically generated on the receiving end of the link. This requires that the sequence generator on the receiving end of the link generate the same pseudorandom bit sequence, and do so in synchronization with the received pseudorandom bit sequence.
There are a several ways in which the synchronization of the receiver's pseudorandom bit sequence might be accomplished. For instance, the received pseudorandom bit sequence can be examined to determine when a predetermined sequence appears in the bit sequence. When the predetermined sequence is found, the two sequences are synchronized. It is typically inefficient, however, to wait for the predetermined sequence to appear. Another way to synchronize the pseudorandom bit sequences would be to receive a first portion of the transmitted bit sequence and to look up this sequence in a table to determine where the transmitter is in a certain bit sequence. This, however, would also be inefficient.
It would therefore be desirable to provide a mechanism for quickly and efficiently synchronizing two pseudorandom bit sequences in a communications link. It would further be desirable for this mechanism to enable the testing of the bit error rate in real-time (i.e., during data transmissions).